package dao;

import entity.DeptEntity;
import org.apache.ibatis.session.SqlSession;
import util.SqlSessionFactoryUtil;

import java.util.List;

public class DeptDaoImpl {
    // 添加方法
    public void insert() {
        // 利用 try with resource 会自动调用 close 方法关闭 sqlSession
        try (SqlSession Sqlsession = SqlSessionFactoryUtil.getSession()){
            Sqlsession.insert("insert");
        }
    }

    // 删除方法
    public void deleteById(int id) {
        try (SqlSession sqlSession = SqlSessionFactoryUtil.getSession()) {
            sqlSession.delete("deleteById", id);
        }
    }

    // 查询所有信息方法
    public void getAll() {
        try (SqlSession sqlSession = SqlSessionFactoryUtil.getSession()){
            List<DeptEntity> depts = sqlSession.selectList("getAll");
            // 使用了 Lambda 表达式对该方法引用
            depts.forEach(System.out::println);
        }
    }

    // 根据编号查询单条信息
    public void getById(int id) {
        try (SqlSession sqlSession = SqlSessionFactoryUtil.getSession()){
            DeptEntity dept = sqlSession.selectOne("getById", id);
            System.out.println(dept);
        }
    }

    // 修改方法
    public void update(int id) {
        try (SqlSession sqlSession = SqlSessionFactoryUtil.getSession()){
            sqlSession.update("update", id);
        }
    }

}
